function invoker(userFunc, context) {
    // 状态设置为start
    var state = 'start';
    var userFunc$1 = userFunc(context);
    return function generatorInvoker(arg) {
        // 已完成
        if (state === 'completed') {
            return { value: undefined, done: true };
        }
        context.arg = arg;
        // 执行中
        while (true) {
            let result = userFunc$1() // 执行下一步，并获取状态（其实就是switch里return的值）
            // 判断是否已经执行完成
            state = context.done
            ? 'completed'
            : 'yield';
            //result === null则跳过return进入下一个循环，那什么什么record.result 的时候，也就是switch反回了空值的情况
            if (result === null) {
                continue;
            }
            return {
                value: result,
                done: context.done
            };
        }
    }
} 
exports.invoker = invoker;